${info.title}
=======

${info.description}

----------

航班查询
=======

##  ##
#### 服务器地址 ####

<#list servers! as server>
    ${server.url}
</#list>
##  ##
#### 通用参数 ####

| Header标识 | 值 |
| :--: | :--: | 
| Content-Type | application/xml |
| Accept | application/xml |
| Accept-Encoding | gzip |
| salesChannel | 0000 |

##  ##

#### 接口定义 ####

<#list paths?keys as urlKey>
    <#list paths[urlKey]?keys as method>
        <#assign parameters=''>
        <#assign bodyData=paths[urlKey][method]>
        <#list paths[urlKey][method].parameters! as pa>
            <#if pa.in=='query'>
                <#assign parameters=parameters+'&'+pa.name+'='+pa.name?upper_case>
            </#if>
        </#list>
        <#if parameters!=''>
            <#assign parameters='?'+parameters?substring(1)>
        </#if>
        <#list servers! as server>
            Http请求方式：${method}

            URI地址：${urlKey+parameters}
        </#list>
    </#list>
</#list>


* [接口输入参数](#IATAAirShoppingRQ)<br/>
* [接口输出参数](#IATAAirShoppingRS)<br/>
* [接口返回值](#outParam)<br/>
* [错误代码](#errcode)<br/>
* [数据模型](#datamodel)<br/>
* [枚举类型](#enum)



* 接口输入参数<br/>
 <span id = "IATAAirShoppingRQ" >请求参数</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
<#list bodyData.parameters! as pa>
| ${pa.name} | [${pa.schema.type}] | 参与者 | ${pa.description} | ${pa.required?string("Y","N")} |
</#list>
<#if bodyData.requestBody??>
    <#assign requestBody=bodyData.requestBody>
    <#assign josnBodyKey=requestBody.content['application/json'].schema.ref?substring(21)>

    <#assign properties=components.schemas[josnBodyKey].properties>
    <#list properties?keys as pro>
        | ${pro} | [<#if properties[pro].type??>${pa.schema.type}<#else><#assign schemasKey=schemasKey+pro+','>object</#if>] | 参与者 | pa.description | Y |
    </#list>
</#if>

<span id = "PartyType" >**PartyType**</span>


| sender |[SenderType](#SenderType) | 发送者 | 消息发送者信息。| N |
<#list 1..20 as i>
    <#list components.schemas?keys as schemas>
        <#if schemasKey?index_of(schemas+',') lte -1 >
        <#else>
            <span id = "PartyType" >**${schemas}**</span>
            <#assign properties=components.schemas[schemas].properties>
            | 参数 | 类型 | 描述 | 说明 | 可空 |
            | :--: | :--: | :--: | :--: | :--: |
                    <#list properties?keys as pro>
                        | ${pro} | [<#if properties[pro].type??>${properties[pro].type}<#else><#assign schemasKey=schemasKey+pro+','>object</#if>] | 参与者 | pa.description | Y |
                    </#list>
        </#if>
        <#assign schemasKey=schemasKey?replace(schemas+',','')>
    </#list>
    <#if schemasKey='' >
        <#break>
    </#if>
</#list>



 <span id = "SenderType" >**SenderType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| travelAgency |[TravelAgencyType](#TravelAgencyType) | 旅行代理 | 一个私人的零售商或供应商向公众提供旅行和旅游相关服务的公共服务，如活动、航空公司、汽车租赁、游轮线路、酒店、铁路、旅行保险和包价旅游等。 | N |

 <span id = "TravelAgencyType" >**TravelAgencyType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| AgencyID |String | 代理ID | 代理销售者ID。例如：CTRV | N |
| IATANumber |BigDecimal | IATA号码 | IATA指定给代理的代理号码。例如：98417900 | N |
| Name |String | 名称 | 代理名称。例如：Carson Travel | N |
| PseudoCityID |String | office号 | 计算机订票（座）座系统（CRS）或全球分销系统（GDS）给企业用户的标识符，通常是旅行代理。也被称为Office ID | N |
| TypeCode |TravelAgencyTypeCodeContentType | 类型代码 | 旅行代理类型代码。例如：TravelAgency, OnlineTravelAgency,TravelManagementCompany. | N |

 <span id = "IATAPayloadStandardAttributesType" >**IATAPayloadStandardAttributesType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| AltLangID | String | 语言ID | 标识用户或消息的交流语言。语言是由ISO 639代码 | N |
| CorrelationID | String | 关联ID | 在整个Web服务消息的处理过程中，允许日志消息与相应的Web服务消息的端到端关联 | N |
| EchoTokenText | String | 回声令牌 | 由请求主机系统指定的附加消息标识，当请求消息包括回声令牌时，对应的响应消息必须包括具有相同值的回声令牌。| N |
| PrimaryLangID | String | 首选语言ID | 对应的消息主要语言偏好。语言是由ISO 639代码 | N |
| RetransmissionInd | Boolean |重传标识 | 当为true时，指示失败后正在重新发送消息。建议仅在重传消息时使用此属性（即，设置为true）。| N |
| SeqNumber | BigDecimal | 事务序列号 | 用于标识发送系统分配的交易序列号；允许应用程序按照某种顺序处理消息 | N |
| Timestamp | String | 消息日期时间 | 以UTC格式表示消息的创建日期和时间。| N |
| TrxID | String | 交易ID | 用于关联交易中的所有消息的唯一标识符（例如，这将在作为正在进行的交易一部分的所有请求和响应消息中发送）。| N |
| TrxStatusCode | String | 交易状态代码 | 这指示该消息在消息序列中的位置 | N |
| VersionNumber | BigDecimal | 版本号 | 对于所有IATA版本的消息，消息的版本由十进制值指示。| N |

* 接口输出参数<br/><span id = "IATAAirShoppingRS">**IATAAirShoppingRS**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| Error | List<[ErrorType](#ErrorType)> | 错误信息 | 处理请求期间检车的相关错误信息。| Y |
| MessageDoc | [MessageDocType](#MessageDocType) | 消息文档 | 消息文档的信息包括文档名称和版本号 | N |
| PayloadAttributes | [IATAPayloadStandardAttributesType](#IATAPayloadStandardAttributesType1) | 有效荷载属性 | IATA标准的有效载荷属性 | N |
| Response | [ResponseType](#ResponseType) | 应答数据 | AirShopping应答信息 | N |

<span id = "ErrorType">**ErrorType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |	
| Code | String | 错误代码 | 对应于PADIS 9321定义的处理错误的代码。参考应用错误代码 | Y |
| DescText | String | 错误描述 | 提供错误的自由文本描述 | Y |

<span id = "MessageDocType">**MessageDocType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| Name | String | 名称 | 名称。例如：ThisAirline Gateway | N |
| RefVersionNumber | BigDecimal | 版本号 | 框架版本。例如：SOAP 2015.1 | N |

<span id = "IATAPayloadStandardAttributesType1">**IATAPayloadStandardAttributesType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| AltLangID | String | 语言ID | 标识用户或消息的交流语言。语言是由ISO 639代码 | N |
| CorrelationID | String | 关联ID | 在整个Web服务消息的处理过程中，允许日志消息与相应的Web服务消息的端到端关联 | N |
| EchoTokenText | String | 回声令牌 | 由请求主机系统指定的附加消息标识，当请求消息包括回声令牌时，对应的响应消息必须包括具有相同值的回声令牌。| N |
|PrimaryLangID |String |首选语言ID |对应的消息主要语言偏好。语言是由ISO 639代码 | N |
| RetransmissionInd | Boolean | 重传标识 | 当为true时，指示失败后正在重新发送消息。建议仅在重传消息时使用此属性（即，设置为true）。| N |
| SeqNumber | BigDecimal | 事务序列号 | 用于标识发送系统分配的交易序列号；允许应用程序按照某种顺序处理消息 | N |
| Timestamp | String | 消息日期时间 | 以UTC格式表示消息的创建日期和时间。| N |
| TrxID | String | 交易ID |用于关联交易中的所有消息的唯一标识符（例如，这将在作为正在进行的交易一部分的所有请求和响应消息中发送）。| N |
| TrxStatusCode | String | 交易状态代码 | 这指示该消息在消息序列中的位置 | N |
| VersionNumber | BigDecimal | 版本号 | 对于所有IATA版本的消息，消息的版本由十进制值指示。| N |

<span id = "ResponseType">**ResponseType**</span>

| 参数 | 类型 | 描述 | 说明 | 可空 |
| :--: | :--: | :--: | :--: | :--: |
| DataLists | DataListsType | 数据列表 | 此消息的数据列表定义。| N |
| OffersGroup | OffersGroupType | 报价组合 | 承运人报价组合 | N |
| ShoppingResponse | ShoppingResponseType | 搜索应答 | 有助于跟踪所提供的内容，并包含源航空公司针对响应购物请求而返回的一组产品优惠的唯一标识符。| N |

* 接口输入参数<span id = "inParam" ></span>
* 接口返回值<span id = "outParam" ></span>

附录

* 错误代码<br/><span id = "errcode" ></span>
  **错误码**

| 错误码 | 错误信息 | 备注 |
| :--: | :--: | :--: |
| S300 | 预定成功，婴儿摇篮申请失败 | typeCode = 'unknown' |
| S10000 | 预定参数错误 | typeCode = 'unknown' |
| S10001 | 已经生成相同的有效订单, 请先支付 | typeCode = 'unknown' |
| S10002 | 已经生成相同的有效订单, 正在出票中 | typeCode = 'unknown' |
| S10003 | 已经生成相同的有效订单, 已出票 | typeCode = 'unknown' |
|S10004 | 已经生成相同的有效订单, 该订单在差退中 , 请完成退票后再来预定 | typeCode = 'unknown' |
| S10005 | 已有订单跟现有订单航段有冲突, 请先支付 | typeCode = 'unknown' |
|S10006 |一个支付中的订单跟现有订单航段冲突 | typeCode = 'unknown' |
| S10007 | 一个待出票订单跟现有订单航段冲突 | typeCode = 'unknown'|
| S10008 | 一个出票订单跟现有订单航段冲突 | typeCode = 'unknown' |
| S10009 | 航段状态不可用 | typeCode = 'unknown' |
| S10010 | 乘机人姓名或证件不对 | typeCode = 'unknown' |

| 错误码 | 错误信息 | 备注 |
| :--: | :--: | :--: |
| 295 | No Flights Requested无满足要求的航班| |
| 304 |System Temporarily Unavailable系统暂时不可用| |
| 352 | Link to inventory system is unavailable链接的库存系统不可用| |
| 486 |Unknown未知错误| |
| 727 | Invalid amount错误的金额| |
| 728 | Invalid conversion type错误的转换类型| |
| 72E | Too many possible break points – provide turnaround and/or break points可能运价计算点太多- 提供转机和 / 或中断点| |
| 73Q | Invalid/missing flight segment data航班航段数据错误/ 丢失| |
| 74H | Total number of flight segments missing航班航段总数丢失| |
| 794 | Invalid or missing fare calculation缺少票价计算，或票价计算错误| |
| 795 | Invalid, missing or conflicting search criteria搜索条件缺少，丢失或冲突| |

* 数据模型<br/><span id = "datamodel" ></span>
  **数据模型**<br/>**变更和退票费描述说明**

EI项

| 字段 | 说明 | 类型 | 备注 |
| :--: | :--: | :--: | :--: |
| eiComment | 限制条件 | String | |
| ei | ei项 | String | |

变更和退票费适用时间信息

| 字段 | 说明 | 类型 | 备注 |
| :--: | :--: | :--: | :--: |
| maxTime | 最大时间 | Integer | |
| maxTimeUnit | 时间单位 | String | D(天),N(分钟),H(小时),M(月) |
| maxTimeFlag |是否包含 |Integer |0不包含1包含 |
| minTime | 最小时间 | Integer | |
| minTimeUnit | 时间单位 | String | D(天),N(分钟),H(小时),M(月) |
| minTimeFlag | 是否包含 | Integer | 0不包含1包含 |

* 枚举类型<br/><span id = "enum" ></span>
  **枚举类型**

联系信息类型

| 代码 | 说明 |
| :--: | :--: |
| AGGREGATOR | 聚合者联系信息 |
| CORPORATION | 公司/团体联系信息 |
| RETAIL_PARTNER | 零售合作伙伴 |
| ENABLED_SYSTEM | NDC-可用系统联系信息 |
| TRAVEL_AGENCY | 代理联系信息 |
| ORG | 机构联系信息 |
| PAX | 乘客联系信息 |
| PAX_GROUP | 团体乘客联系信息 |
| PRIMARY | 主要联系信息 |
| PAYMENT | 支付联系信息 |
| PAYER | 付款人联系信息 |
| APPLICANT | 申请联系人 |

**关于证件类型限制**<br>
户口簿年龄限制:14天-16岁（不含）,以首段航班起飞时间计算,不符合则在乘机人列表页不可勾选只有户口簿的乘机人

出生证明

出生证明仅支持14天-16岁（不含）,以首段航班起飞时间计算,不符合则在乘机人列表页不可勾选只有出生证明的乘机人

出生证明必填项:中文姓名、证件号、监护人手机号、性别（默认男,可以更改）

国内航线护照台胞证/回乡证/外国人永久居留身份证/国内航线其它必填项:英文姓、英文名、证件号、出生日期、乘机人手机

证件支持的航线和乘客类型,出生证明也是14天-16周岁









